import numpy as np  # 导入numpy

# 创建简单数组
n1 = np.array([1, 2, 3])
print(n1)

# 创建一个带小数点的数组
n2 = np.array([0.1, 0.2, 0.3])
print(n2)

# 创建一个二维数组
n3 = np.array([
    [1, 2],
    [3, 4],
])
print(n3)

"""
1、创建数组的语法：
    numpy.array(object, dtype=None, copy=True, ndmin=0)
"""

# 使用dtype -- 创建数组时，指定数据类型
n4 = np.array([1, 2, 3], dtype=float)
print(n4)
print(n4.dtype)  # 查看数组中元素的类型
print(type(n4))  # 查看数组本身的类型
print(type(n4[0]))  # 查看特定元素的类型

# 使用object -- 进行数据初始化
lst = [1, 2, 3]
n5 = np.array(lst, dtype=float)
print(n5)

# 使用copy -- 保留原数组中的数据
n6 = np.array([1, 2, 3])
n7 = np.array(n6, copy=True)
n7[0] = 100
n7[2] = 99
print(n6)  # 未变化
print(n7)

# 使用ndmin -- 指定最小维数
lst = [1, 2, 3]
n8 = np.array(lst, ndmin=3)  # 我们要创建3维数组
print(n8)

"""
2、不同方式创建数组
"""
# 创建指定维数的空数组
n9 = np.empty([4, 3], dtype=int)  # [4,3]表示4行3列，数据类型未初始化(可指定)的数组
print(n9)

# 创建指定维度的数组，以0填充
n10 = np.zeros(3)  # 1行3列
print(n10)  # 输出的结果默认为float

# 创建指定维度的数组，以1填充
n11 = np.ones(3)  # 1行3列
print(n11)  # 输出的结果默认为float

# 创建指定维度的数组，以指定的数值填充
n12 = np.full(3, 8)  # # 1行3列，以8填充
print(n12)

n13 = np.full((3, 4), 8)  # 3行4列，以8填充
print(n13)
